Read the data for the specified row into the (user supplied) data buffer
_b_u_f. The data are returned decompressed and, in the native byte- and
bit-ordering, but are otherwise packed (see further below). The buffer
must be large enough to hold an entire scanline of data. Applications
should call the routine _T_I_F_F_S_c_a_n_l_i_n_e_S_i_z_e to find out the size (in bytes)
of a scanline buffer. The _r_o_w parameter is always used by
_T_I_F_F_R_e_a_d_S_c_a_n_l_i_n_e; the _s_a_m_p_l_e parameter is used only if data are organized
in separate planes (_P_l_a_n_a_r_C_o_n_f_i_g_u_r_a_t_i_o_n=2).
NNNNOOOOTTTTEEEESSSS
The library attempts to hide bit- and byte-ordering differences between
the image and the native machine by converting data to the native machine
order. Bit reversal is done if the _F_i_l_l_O_r_d_e_r tag is opposite to the
native machine bit order. 16- and 32-bit samples are automatically
byte-swapped if the file was written with a byte order opposite to the
native machine byte order,
In C++ the _s_a_m_p_l_e parameter defaults to 0.
RRRREEEETTTTUUUURRRRNNNN VVVVAAAALLLLUUUUEEEESSSS
_T_I_F_F_R_e_a_d_S_c_a_n_l_i_n_e returns -1 if it detects an error; otherwise 1 is
returned.
DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
All error messages are directed to the _T_I_F_F_E_r_r_o_r(3T) routine.
CCCCoooommmmpppprrrreeeessssssssiiiioooonnnn aaaallllggggoooorrrriiiitttthhhhmmmm ddddooooeeeessss nnnnooootttt ssssuuuuppppppppoooorrrrtttt rrrraaaannnnddddoooommmm aaaacccccccceeeessssssss. Data was requested
in a non-sequential order from a file that uses a compression algorithm
and that has _R_o_w_s_P_e_r_S_t_r_i_p greater than one. That is, data in the image
is stored in a compressed form, and with multiple rows packed into a
strip. In this case, the library does not support random access to the
data. The data should either be accessed sequentially, or the file
should be converted so that each strip is made up of one row of data.
BBBBUUUUGGGGSSSS
Reading subsampled YCbCR data does not work correctly because, for
_P_l_a_n_a_r_C_o_n_f_i_g_u_r_a_t_i_o_n=2 the size of a scanline is not calculated on a per-
sample basis, and for _P_l_a_n_a_r_C_o_n_f_i_g_u_r_a_t_i_o_n=1 the library does not unpack
the block-interleaved samples; use the strip- and tile-based interfaces